While most Unix process resources of an APP are inherited from or shared with the active context creator, the address space of an APP is the caller's address space augmented by the active context memory range. The benefit of this augmentation is that data can be read and written directly into the caller's address space during a protected procedure call.
The active context memory range is mapped in a fixed address space range for all APPs using the active context. This means the code within the active context can be position dependent and pointers to data within the active context need no translation. The active context address range can be thought of as a sub-address space shared by all APPs.
For D11, protected procedure calls into the D11 active context mean that no protocol packing, transport, or unpacking is necessary for local D11 programs entering the D11 window system.
The augmented address space does mandate a number of rules for writing
code running within an active context to ensure robustness. These
rules are analogous to the rules Unix kernel programmers follow to
ensure robustness in the kernel. Active context code should not
call routines in the non-active address space range. Reads
and writes through pointers supplied by the protected procedure caller must
be verified as outside the active context address range. Signal handlers
must be established to trap memory access violations due to accessing
memory outside the active context address range and remedy the situation.